var shortDataTypes = require("../lib/sequelizex").DataTypes;
module.exports = (sequelize, DataTypes) => {
    return sequelize.define("Employee",{
        employee_id : {
            type : DataTypes.STRING(9),
            unique : true,
            allowNull : true
        },         // 9位工号
        name : shortDataTypes.String(null,true),
        phone : shortDataTypes.Phone(true),
        fingerprint : {                     // todo:不检查重复被攻击了怎么办，需要生成md5进行重复检查
            type : DataTypes.TEXT,
            allowNull : true
        },
        /**
         * 状态；
         * 0 : 缺少指纹
         * 1 : 完整
         */
        state : shortDataTypes.Int(0),
        psk : shortDataTypes.String(),
        fingerprint_id : {
            type : DataTypes.INTEGER,
            unique : true,
            allowNull : true
        },
        /**
         * 是否有效
         * 1 : 有效
         * 0 : 无效
         */
        isValid : shortDataTypes.Int(1)
    },{
        timestamps : true,
        scopes : {
            common : {
                where : {
                    state : 1
                }
            }
        },
        associate : function(models){
            models.Employee.hasMany(models.Record,{foreignKey: "EmployeeId"});
        }
    });
};